MySQL パラメータチューニング table_open_cache
前提
MySQL全体で同時に開けるテーブルの数がtable_open_cacheで定義されてる。
このサイズを大きくしておくと、接続内でテーブルを開く回数が多い場合に有用になる場合あり。
見極め
SHOW GLOBAL STATUS文のOpened_tablesが多くなるようであれば、テーブルキャッシュを試してみてもいいかも。
すべてのスレッドについて開いているテーブルの数。 この値を大きくすると、mysqld が要求するファイルディスクリプタの数が増加します。 Opened_tables ステータス変数を検査して、テーブルキャッシュを増やす必要があるかどうかを確認できます。
注意
大きくしすぎると、OSのファイルディスクリプタが枯渇するので注意。
table_open_cache および max_connections システム変数は、サーバーが開いたままにするファイルの最大数に影響します。 これらの値のいずれかまたは両方を増やすと、オープンファイルディスクリプタのプロセスあたりの数に関して、オペレーティングシステムによって適用されている制限に達する可能性があります。
table_open_cache は max_connections に関連します。 たとえば、200 の同時実行接続の場合、少なくとも 200 * N のテーブルキャッシュサイズを指定します。ここで N は実行するクエリーの結合あたりのテーブルの最大数です。 また、一時テーブルとファイル用のいくつかの追加のファイルディスクリプタを予約する必要もあります。